﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using ECOSYSTEM_BL;
using ECOSYSTEM_Dominio;
namespace ECOSYSTEMPRESENTACION
{
    public partial class frmSubLinea : Form
    {
        public frmSubLinea()
        {
            InitializeComponent();
        }
        SubLinea laSubLinea = new SubLinea();
        SubLineaBL laSubLineaBL = new SubLineaBL();
        private SubLinea ObtenerObjeto()
        {
            laSubLinea.NomSubLinea = txtNombreSubLinea.Text;
            if (txtDescripcionSubLinea.Text == "") {
                laSubLinea.DescSubLinea = "SIN DESCRIPCION";
            }
            else
            {
                laSubLinea.DescSubLinea = txtDescripcionSubLinea.Text;
            }
            return laSubLinea;
        }
        private Boolean GuardarSubLinea()
        {
            SubLinea laSubLinea = ObtenerObjeto();
            laSubLineaBL.guardarSubLinea(laSubLinea);
            return true;
        }
        private SubLinea ObjetoActualizar()
        {
            laSubLinea.SubLineaID = Convert.ToInt32(lblCodigo.Text);
            laSubLinea.NomSubLinea = txtNombreSubLinea.Text;
            if (txtDescripcionSubLinea.Text == "")
            {
                laSubLinea.DescSubLinea = "SIN DESCRIPCION";
            }
            else
            {
                laSubLinea.DescSubLinea = txtDescripcionSubLinea.Text;
            }
            return laSubLinea;
        }
        private Boolean ActualizarSubLinea()
        {
            SubLinea laSubLinea = ObjetoActualizar();
            laSubLineaBL.ActualizarSubLinea(laSubLinea);
            return true;
        }
        private void LlenarListaSubLinea()
        {
            if (dgvListaSubLinea.DataSource == null)
            {
                dgvListaSubLinea.DataSource = laSubLineaBL.ObtenerSubLinea();
            }
        }
        private int Filtrar_dgvListaSubLinea(String columna, String texto, BindingSource filtro, DataGridView data)
        {
            if (bsFiltro.DataSource == null) { return 0; }
            try
            {
                String fila = String.Empty;
                fila = "LIKE '" + texto.Trim() + "%'";
                if (fila != String.Empty)
                {
                    fila = "[" + columna + "]" + fila;
                }
                filtro.Filter = fila;
                data.DataSource = filtro.DataSource;
                return filtro.Count;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            return 0;
        }
        private void AplicarFiltro()
        {
            Int32 ret = Filtrar_dgvListaSubLinea("SubLinea", txtSubLineaNombreBuscar.Text.Trim(), bsFiltro, dgvListaSubLinea);
            if (ret == 0) { txtSubLineaNombreBuscar.BackColor = Color.Red; }
            else { txtSubLineaNombreBuscar.BackColor = Color.White; }
        }

        private void frmSubLinea_Load_1(object sender, EventArgs e)
        {
            rbNuevoSubLinea.Checked = true;
        }

        private void rbNuevoSubLinea_CheckedChanged(object sender, EventArgs e)
        {
            if (rbNuevoSubLinea.Checked == true)
            {
                dgvListaSubLinea.ClearSelection();
                dgvListaSubLinea.ReadOnly = true;
                groupBox3.Enabled = true;
                btnRegistrarSubLinea.Enabled = true;
                LimpiarCampos();
                txtNombreSubLinea.Select();
            }
            else
            {
                groupBox3.Enabled = false;
                btnRegistrarSubLinea.Enabled = false;
            }
        }

        private void rbActulizarSubLinea_CheckedChanged(object sender, EventArgs e)
        {
            if (rbActulizarSubLinea.Checked == true)
            {
                groupBox2.Enabled = true;
                bsFiltro.DataSource = laSubLineaBL.ObtenerSubLinea();
                btnActualizarSubLinea.Enabled = true;
                LimpiarCampos();
                txtSubLineaNombreBuscar.Select();
                LlenarListaSubLinea();
            }
            else
            {
                groupBox2.Enabled = false;
                btnActualizarSubLinea.Enabled = false;
            }
        }

        private void btnRegistrarSubLinea_Click(object sender, EventArgs e)
        {
            try
            {
                GuardarSubLinea();
                dgvListaSubLinea.DataSource = null;
                MessageBox.Show("SubLinea " + txtNombreSubLinea.Text + " Registrada Correctamente");
                LimpiarCampos();
            }
            catch (SqlException ex) { MessageBox.Show(ex.Message); }
            catch (Exception ec) { MessageBox.Show(ec.Message); }
        }

        private void btnActualizarSubLinea_Click(object sender, EventArgs e)
        {
            try
            {
                ActualizarSubLinea();
                MessageBox.Show("SubLinea Actualizada Correctamente");
                rbActulizarSubLinea.Checked = false;
                rbNuevoSubLinea.Checked = true;
                dgvListaSubLinea.DataSource = null;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private void LimpiarCampos()
        {
            txtSubLineaNombreBuscar.Text = "";
            txtNombreSubLinea.Text = "";
            txtDescripcionSubLinea.Text = "";
        }

        private void txtSubLineaNombreBuscar_TextChanged(object sender, EventArgs e)
        {
            AplicarFiltro();
        }

        private void dgvListaSubLinea_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                Int32 nroFila = Int32.Parse(e.RowIndex.ToString());
                groupBox3.Enabled = true;
                txtNombreSubLinea.Text = Convert.ToString(dgvListaSubLinea["SubLinea", nroFila].Value);
                txtDescripcionSubLinea.Text = Convert.ToString(dgvListaSubLinea["Descripcion", nroFila].Value);
                lblCodigo.Text = Convert.ToString(dgvListaSubLinea["Codigo", nroFila].Value);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }
    }
}
